package cn.iocoder.yudao.module.system.service.docgroup;

import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;

import java.util.*;
import cn.iocoder.yudao.module.system.controller.admin.docgroup.vo.*;
import cn.iocoder.yudao.module.system.dal.dataobject.docgroup.DocGroupDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;

import cn.iocoder.yudao.module.system.dal.mysql.docgroup.DocGroupMapper;

import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;

/**
 * 知识库 Service 实现类
 *
 * @author 数创万维
 */
@Service
@Validated
public class DocGroupServiceImpl implements DocGroupService {

    @Resource
    private DocGroupMapper docGroupMapper;

    @Override
    public Long createDocGroup(DocGroupSaveReqVO createReqVO) {
        // 插入
        DocGroupDO docGroup = BeanUtils.toBean(createReqVO, DocGroupDO.class);
        docGroupMapper.insert(docGroup);
        // 返回
        return docGroup.getId();
    }

    @Override
    public void updateDocGroup(DocGroupSaveReqVO updateReqVO) {
        // 更新
        DocGroupDO updateObj = BeanUtils.toBean(updateReqVO, DocGroupDO.class);
        docGroupMapper.updateById(updateObj);
    }

    @Override
    public void deleteDocGroup(Long id) {
        // 删除
        docGroupMapper.deleteById(id);
    }



    @Override
    public DocGroupDO getDocGroup(Long id) {
        return docGroupMapper.selectById(id);
    }

    @Override
    public PageResult<DocGroupDO> getDocGroupPage(DocGroupPageReqVO pageReqVO) {
        return docGroupMapper.selectPage(pageReqVO);
    }

}